Хотя базовые коллекции, такие как массивы или срезы, ограничены хранением элементов одного типа данных, структуры (structs) они позволяют объединить разнородные типы в единую сущность. Это необходимо для исследования Марса, где телеметрия включает смешанные данные, такие как имена (строки) и координаты (float64).
1. Семантическая группировка против однородности
В отличие от среза чисел с плавающей точкой, который сообщает только «сколько», структура предоставляет помеченный контейнер. Определение: В то время как коллекции состоят из одинаковых типов, структуры позволяют объединять разнородные элементы. Это предотвращает «перемешивание переменных», объединяя связанные данные в именованные объекты.
2. Атомарность операций
Объединив переменные, мы достигаем атомарности. Функции, подобные func Step(a, b Universe) или func (u Universe) Next(x, y int) bool могут манипулировать целыми средами вместо преследования несвязанных примитивов. Для разовых задач, анонимные структуры (как в Примере 21.1) обеспечивают немедленную организацию без формальных определений типов.